<template>
	<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large" @keyup.enter="login">
		<el-form-item prop="user">
			<el-input v-model="form.user" prefix-icon="el-icon-user" clearable :placeholder="$t('login.userPlaceholder')"/>
		</el-form-item>
		<el-form-item prop="password">
			<el-input v-model="form.password" prefix-icon="el-icon-lock" clearable show-password :placeholder="$t('login.PWPlaceholder')"></el-input>
		</el-form-item>
		<el-form-item style="margin-bottom: 10px;">
			<el-row>
				<el-col :span="12">
<!--					<el-checkbox :label="$t('login.rememberMe')" v-model="form.autologin"></el-checkbox>-->
				</el-col>
				<el-col :span="12" class="login-forgot">
					<router-link to="/reset_password">{{ $t('login.forgetPassword') }}？</router-link>
				</el-col>
			</el-row>
		</el-form-item>
		<el-form-item>
			<el-button type="primary" style="width: 100%;" :loading="islogin" round @click="login">{{ $t('login.signIn') }}</el-button>
		</el-form-item>
<!--		<div class="login-reg">-->
<!--			{{$t('login.noAccount')}} <router-link to="/user_register">{{$t('login.createAccount')}}</router-link>-->
<!--		</div>-->
	</el-form>
	<Vcode :show="isHidden" @success="success" @close="closeVcode" />
</template>

<script>
import Vcode from "vue3-puzzle-vcode";

	export default {
		components: {
			Vcode,
		},
		data() {
			return {
				userType: 'admin',
				form: {
					user: "18766192651",
					password: "123456Aa",
					autologin: false
				},
				rules: {
					user: [
						{required: true, message: this.$t('login.userError'), trigger: 'blur'}
					],
					password: [
						{required: true, message: this.$t('login.PWError'), trigger: 'blur'}
					]
				},
				islogin: false,
				isHidden: false
			}
		},
		watch:{
			userType(val){
				if(val == 'admin'){
					this.form.user = '18766192651'
					this.form.password = '123456Aa'
				}else if(val == 'user'){
					this.form.user = 'user'
					this.form.password = 'user'
				}
			}
		},
		mounted() {

		},
		methods: {
			/**
			* 通过验证
			* @param
			*/
			success(){
				this.isHidden = false; // 隐藏模态框
				this.islogin = true
				this.submit()
			},
			closeVcode() {
				this.isHidden = false;
			},
			async login(){
				var validate = await this.$refs.loginForm.validate().catch(()=>{})
				if(!validate){ return false }

				this.isHidden = true

			},
			async submit() {
				var data = {
					username: this.form.user,
					// password: this.$TOOL.crypto.MD5(this.form.password)
					password: this.form.password
				}
				//获取token
				var token = await this.$API.auth.token.post(data)
				if (token.code === 200) {
					this.$TOOL.cookie.set("TOKEN", token.data, {
						expires: this.form.autologin ? 24 * 60 * 60 : 0
					})
					var user = await this.$API.auth.getUserInfo.post()
					console.log(user.data)
					user.data.role = [
						"SA",
						"admin",
						"Auditor"
					]
					user.data.dashboard = "0"
					this.$TOOL.data.set("USER_INFO", user.data)
				} else {
					this.islogin = false
					this.$message.warning(token.msg)
					return false
				}
				/*		const userData = {
								token: "SCUI.Administrator.Auth",
								userInfo: {
									userId: "1",
									userName: "Administrator",
									dashboard: "0",
									role: [
										"SA",
										"admin",
										"Auditor"
									]
								}
							}
						this.$TOOL.cookie.set("TOKEN", userData.token, {
							expires: this.form.autologin? 24*60*60 : 0
						})
						this.$TOOL.data.set("USER_INFO", userData.userInfo)
		*/


				//获取菜单
				var menu = this.getMenu()
				// if(this.form.user == 'admin'){
				// 	menu = await this.$API.system.menu.myMenus.get()
				// }else{
				// 	menu = await this.$API.demo.menu.get()
				// }

				if (menu.code == 200) {
					if (menu.data.menu.length == 0) {
						this.islogin = false
						this.$alert("当前用户无任何菜单权限，请联系系统管理员", "无权限访问", {
							type: 'error',
							center: true
						})
						return false
					}
					this.$TOOL.data.set("MENU", menu.data.menu)
					this.$TOOL.data.set("PERMISSIONS", menu.data.permissions)
					this.$TOOL.data.set("DASHBOARDGRID", menu.data.dashboardGrid)
				} else {
					this.islogin = false
					this.$message.warning(menu.message)
					return false
				}

				this.$router.replace({
					path: '/demopage'
				})
				this.$message.success("Login Success 登录成功")
				this.islogin = false
			},
			getMenu(){
				return {
					"code": 200,
					"data": {
						"menu": [
							{
								"name": "home",
								"path": "/home",
								"meta": {
									"title": "首页",
									"icon": "el-icon-eleme-filled",
									"type": "menu"
								},
								"children": [
									{
										"name": "dashboard",
										"path": "/dashboard",
										"meta": {
											"title": "控制台",
											"icon": "el-icon-menu",
											"affix": true
										},
										"component": "home"
									},
									{
										"name": "userCenter",
										"path": "/usercenter",
										"meta": {
											"title": "帐号信息",
											"icon": "el-icon-user",
											"tag": "NEW"
										},
										"component": "userCenter"
									}
								]
							},
							{
								"name": "vab",
								"path": "/vab",
								"meta": {
									"title": "组件",
									"icon": "el-icon-takeaway-box",
									"type": "menu"
								},
								"children": [
									{
										"path": "/vab/mini",
										"name": "minivab",
										"meta": {
											"title": "原子组件",
											"icon": "el-icon-magic-stick",
											"type": "menu"
										},
										"component": "vab/mini"
									},
									{
										"path": "/vab/iconfont",
										"name": "iconfont",
										"meta": {
											"title": "扩展图标",
											"icon": "el-icon-orange",
											"type": "menu"
										},
										"component": "vab/iconfont"
									},
									{
										"path": "/vab/data",
										"name": "vabdata",
										"meta": {
											"title": "Data 数据展示",
											"icon": "el-icon-histogram",
											"type": "menu"
										},
										"children": [
											{
												"path": "/vab/chart",
												"name": "chart",
												"meta": {
													"title": "图表 Echarts",
													"type": "menu"
												},
												"component": "vab/chart"
											},
											{
												"path": "/vab/statistic",
												"name": "statistic",
												"meta": {
													"title": "统计数值",
													"type": "menu"
												},
												"component": "vab/statistic"
											},
											{
												"path": "/vab/video",
												"name": "scvideo",
												"meta": {
													"title": "视频播放器",
													"type": "menu"
												},
												"component": "vab/video"
											},
											{
												"path": "/vab/qrcode",
												"name": "qrcode",
												"meta": {
													"title": "二维码",
													"type": "menu"
												},
												"component": "vab/qrcode"
											}
										]
									},
									{
										"path": "/vab/form",
										"name": "vabform",
										"meta": {
											"title": "Form 数据录入",
											"icon": "el-icon-edit",
											"type": "menu"
										},
										"children": [
											{
												"path": "/vab/tableselect",
												"name": "tableselect",
												"meta": {
													"title": "表格选择器",
													"type": "menu"
												},
												"component": "vab/tableselect"
											},
											{
												"path": "/vab/formtable",
												"name": "formtable",
												"meta": {
													"title": "表单表格",
													"type": "menu"
												},
												"component": "vab/formtable"
											},
											{
												"path": "/vab/selectFilter",
												"name": "selectFilter",
												"meta": {
													"title": "分类筛选器",
													"type": "menu"
												},
												"component": "vab/selectFilter"
											},
											{
												"path": "/vab/filterbar",
												"name": "filterBar",
												"meta": {
													"title": "过滤器v2",
													"type": "menu"
												},
												"component": "vab/filterBar"
											},
											{
												"path": "/vab/upload",
												"name": "upload",
												"meta": {
													"title": "上传",
													"type": "menu"
												},
												"component": "vab/upload"
											},
											{
												"path": "/vab/select",
												"name": "scselect",
												"meta": {
													"title": "异步选择器",
													"type": "menu"
												},
												"component": "vab/select"
											},
											{
												"path": "/vab/iconselect",
												"name": "iconSelect",
												"meta": {
													"title": "图标选择器",
													"type": "menu"
												},
												"component": "vab/iconselect"
											},
											{
												"path": "/vab/cron",
												"name": "cron",
												"meta": {
													"title": "Cron规则生成器",
													"type": "menu"
												},
												"component": "vab/cron"
											},
											{
												"path": "/vab/editor",
												"name": "editor",
												"meta": {
													"title": "富文本编辑器",
													"type": "menu"
												},
												"component": "vab/editor"
											},
											{
												"path": "/vab/codeeditor",
												"name": "codeeditor",
												"meta": {
													"title": "代码编辑器",
													"type": "menu"
												},
												"component": "vab/codeeditor"
											}
										]
									},
									{
										"path": "/vab/feedback",
										"name": "vabfeedback",
										"meta": {
											"title": "Feedback 反馈",
											"icon": "el-icon-mouse",
											"type": "menu"
										},
										"children": [
											{
												"path": "/vab/drag",
												"name": "drag",
												"meta": {
													"title": "拖拽排序",
													"type": "menu"
												},
												"component": "vab/drag"
											},
											{
												"path": "/vab/contextmenu",
												"name": "contextmenu",
												"meta": {
													"title": "右键菜单",
													"type": "menu"
												},
												"component": "vab/contextmenu"
											},
											{
												"path": "/vab/cropper",
												"name": "cropper",
												"meta": {
													"title": "图像剪裁",
													"type": "menu"
												},
												"component": "vab/cropper"
											},
											{
												"path": "/vab/fileselect",
												"name": "fileselect",
												"meta": {
													"title": "资源库选择器(弃用)",
													"type": "menu"
												},
												"component": "vab/fileselect"
											},
											{
												"path": "/vab/dialog",
												"name": "dialogExtend",
												"meta": {
													"title": "弹窗扩展",
													"type": "menu"
												},
												"component": "vab/dialog"
											}
										]
									},
									{
										"path": "/vab/others",
										"name": "vabothers",
										"meta": {
											"title": "Others 其他",
											"icon": "el-icon-more-filled",
											"type": "menu"
										},
										"children": [
											{
												"path": "/vab/print",
												"name": "print",
												"meta": {
													"title": "打印",
													"type": "menu"
												},
												"component": "vab/print"
											},
											{
												"path": "/vab/watermark",
												"name": "watermark",
												"meta": {
													"title": "水印",
													"type": "menu"
												},
												"component": "vab/watermark"
											},
											{
												"path": "/vab/importexport",
												"name": "importexport",
												"meta": {
													"title": "文件导出导入",
													"type": "menu"
												},
												"component": "vab/importexport"
											}
										]
									},
									{
										"path": "/vab/list",
										"name": "list",
										"meta": {
											"title": "Table 数据列表",
											"icon": "el-icon-fold",
											"type": "menu"
										},
										"children": [
											{
												"path": "/vab/table/base",
												"name": "tableBase",
												"meta": {
													"title": "基础数据列表",
													"type": "menu"
												},
												"component": "vab/table/base"
											},
											{
												"path": "/vab/table/thead",
												"name": "tableThead",
												"meta": {
													"title": "多级表头",
													"type": "menu"
												},
												"component": "vab/table/thead"
											},
											{
												"path": "/vab/table/column",
												"name": "tableCustomColumn",
												"meta": {
													"title": "动态列",
													"type": "menu"
												},
												"component": "vab/table/column"
											},
											{
												"path": "/vab/table/remote",
												"name": "tableRemote",
												"meta": {
													"title": "远程排序过滤",
													"type": "menu"
												},
												"component": "vab/table/remote"
											}
										]
									},
									{
										"path": "/vab/workflow",
										"name": "workflow",
										"meta": {
											"title": "工作流设计器",
											"icon": "el-icon-share",
											"type": "menu"
										},
										"component": "vab/workflow"
									},
									{
										"path": "/vab/formrender",
										"name": "formRender",
										"meta": {
											"title": "动态表单(Beta)",
											"icon": "el-icon-message-box",
											"type": "menu"
										},
										"component": "vab/form"
									}
								]
							},
							{
								"name": "template",
								"path": "/template",
								"meta": {
									"title": "模板",
									"icon": "el-icon-files",
									"type": "menu"
								},
								"children": [
									{
										"path": "/template/layout",
										"name": "layoutTemplate",
										"meta": {
											"title": "布局",
											"icon": "el-icon-grid",
											"type": "menu"
										},
										"children": [
											{
												"path": "/template/layout/blank",
												"name": "blank",
												"meta": {
													"title": "空白模板",
													"type": "menu"
												},
												"component": "template/layout/blank"
											},
											{
												"path": "/template/layout/layoutTCB",
												"name": "layoutTCB",
												"meta": {
													"title": "上中下布局",
													"type": "menu"
												},
												"component": "template/layout/layoutTCB"
											},
											{
												"path": "/template/layout/layoutLCR",
												"name": "layoutLCR",
												"meta": {
													"title": "左中右布局",
													"type": "menu"
												},
												"component": "template/layout/layoutLCR"
											}
										]
									},
									{
										"path": "/template/list",
										"name": "list",
										"meta": {
											"title": "列表",
											"icon": "el-icon-document",
											"type": "menu"
										},
										"children": [
											{
												"path": "/template/list/crud",
												"name": "listCrud",
												"meta": {
													"title": "CRUD",
													"type": "menu"
												},
												"component": "template/list/crud",
												"children": [
													{
														"path": "/template/list/crud/detail/:id?",
														"name": "listCrud-detail",
														"meta": {
															"title": "新增/编辑",
															"hidden": true,
															"active": "/template/list/crud",
															"type": "menu"
														},
														"component": "template/list/crud/detail"
													}
												]
											},
											{
												"path": "/template/list/tree",
												"name": "listTree",
												"meta": {
													"title": "左树右表",
													"type": "menu"
												},
												"component": "template/list/tree"
											},
											{
												"path": "/template/list/tab",
												"name": "listTab",
												"meta": {
													"title": "分类表格",
													"type": "menu"
												},
												"component": "template/list/tab"
											},
											{
												"path": "/template/list/son",
												"name": "listSon",
												"meta": {
													"title": "子母表",
													"type": "menu"
												},
												"component": "template/list/son"
											},
											{
												"path": "/template/list/widthlist",
												"name": "widthlist",
												"meta": {
													"title": "定宽列表",
													"type": "menu"
												},
												"component": "template/list/width"
											}
										]
									},
									{
										"path": "/template/other",
										"name": "other",
										"meta": {
											"title": "其他",
											"icon": "el-icon-folder",
											"type": "menu"
										},
										"children": [
											{
												"path": "/template/other/stepform",
												"name": "stepform",
												"meta": {
													"title": "分步表单",
													"type": "menu"
												},
												"component": "template/other/stepform"
											}
										]
									}
								]
							},
							{
								"name": "other",
								"path": "/other",
								"meta": {
									"title": "其他",
									"icon": "el-icon-more-filled",
									"type": "menu"
								},
								"children": [
									{
										"path": "/other/directive",
										"name": "directive",
										"meta": {
											"title": "指令",
											"icon": "el-icon-price-tag",
											"type": "menu"
										},
										"component": "other/directive"
									},
									{
										"path": "/other/viewTags",
										"name": "viewTags",
										"meta": {
											"title": "标签操作",
											"icon": "el-icon-files",
											"type": "menu"
										},
										"component": "other/viewTags",
										"children": [
											{
												"path": "/other/fullpage",
												"name": "fullpage",
												"meta": {
													"title": "整页路由",
													"icon": "el-icon-monitor",
													"fullpage": true,
													"hidden": true,
													"type": "menu"
												},
												"component": "other/fullpage"
											}
										]
									},
									{
										"path": "/other/verificate",
										"name": "verificate",
										"meta": {
											"title": "表单验证",
											"icon": "el-icon-open",
											"type": "menu"
										},
										"component": "other/verificate"
									},
									{
										"path": "/other/loadJS",
										"name": "loadJS",
										"meta": {
											"title": "异步加载JS",
											"icon": "el-icon-location-information",
											"type": "menu"
										},
										"component": "other/loadJS"
									},
									{
										"path": "/link",
										"name": "link",
										"meta": {
											"title": "外部链接",
											"icon": "el-icon-link",
											"type": "menu"
										},
										"children": [
											{
												"path": "https://baidu.com",
												"name": "百度",
												"meta": {
													"title": "百度",
													"type": "link"
												}
											},
											{
												"path": "https://www.google.cn",
												"name": "谷歌",
												"meta": {
													"title": "谷歌",
													"type": "link"
												}
											}
										]
									},
									{
										"path": "/iframe",
										"name": "Iframe",
										"meta": {
											"title": "Iframe",
											"icon": "el-icon-position",
											"type": "menu"
										},
										"children": [
											{
												"path": "https://v3.cn.vuejs.org",
												"name": "vue3",
												"meta": {
													"title": "VUE 3",
													"type": "iframe"
												}
											},
											{
												"path": "https://element-plus.gitee.io",
												"name": "elementplus",
												"meta": {
													"title": "Element Plus",
													"type": "iframe"
												}
											},
											{
												"path": "https://lolicode.gitee.io/scui-doc",
												"name": "scuidoc",
												"meta": {
													"title": "SCUI文档",
													"type": "iframe"
												}
											}
										]
									}
								]
							},
							{
								"name": "test",
								"path": "/test",
								"meta": {
									"title": "实验室",
									"icon": "el-icon-mouse",
									"type": "menu"
								},
								"children": [
									{
										"path": "/test/autocode",
										"name": "autocode",
										"meta": {
											"title": "代码生成器",
											"icon": "sc-icon-code",
											"type": "menu"
										},
										"component": "test/autocode/index",
										"children": [
											{
												"path": "/test/autocode/table",
												"name": "autocode-table",
												"meta": {
													"title": "CRUD代码生成",
													"hidden": true,
													"active": "/test/autocode",
													"type": "menu"
												},
												"component": "test/autocode/table"
											}
										]
									},
									{
										"path": "/test/codebug",
										"name": "codebug",
										"meta": {
											"title": "异常处理",
											"icon": "sc-icon-bug-line",
											"type": "menu"
										},
										"component": "test/codebug"
									}
								]
							},
							{
								"name": "setting",
								"path": "/setting",
								"meta": {
									"title": "配置",
									"icon": "el-icon-setting",
									"type": "menu"
								},
								"children": [
									{
										"path": "/setting/system",
										"name": "system",
										"meta": {
											"title": "系统设置",
											"icon": "el-icon-tools",
											"type": "menu"
										},
										"component": "setting/system"
									},
									{
										"path": "/setting/user",
										"name": "user",
										"meta": {
											"title": "用户管理",
											"icon": "el-icon-user-filled",
											"type": "menu"
										},
										"component": "setting/user"
									},
									{
										"path": "/setting/role",
										"name": "role",
										"meta": {
											"title": "角色管理",
											"icon": "el-icon-notebook",
											"type": "menu"
										},
										"component": "setting/role"
									},
									{
										"path": "/setting/dept",
										"name": "dept",
										"meta": {
											"title": "部门管理",
											"icon": "sc-icon-organization",
											"type": "menu"
										},
										"component": "setting/dept"
									},
									{
										"path": "/setting/dic",
										"name": "dic",
										"meta": {
											"title": "字典管理",
											"icon": "el-icon-document",
											"type": "menu"
										},
										"component": "setting/dic"
									},
									{
										"path": "/setting/table",
										"name": "tableSetting",
										"meta": {
											"title": "表格列管理",
											"icon": "el-icon-scale-to-original",
											"type": "menu"
										},
										"component": "setting/table"
									},
									{
										"path": "/setting/menu",
										"name": "settingMenu",
										"meta": {
											"title": "菜单管理",
											"icon": "el-icon-fold",
											"type": "menu"
										},
										"component": "setting/menu"
									},
									{
										"path": "/setting/task",
										"name": "task",
										"meta": {
											"title": "计划任务",
											"icon": "el-icon-alarm-clock",
											"type": "menu"
										},
										"component": "setting/task"
									},
									{
										"path": "/setting/client",
										"name": "client",
										"meta": {
											"title": "应用管理",
											"icon": "el-icon-help-filled",
											"type": "menu"
										},
										"component": "setting/client"
									},
									{
										"path": "/setting/log",
										"name": "log",
										"meta": {
											"title": "系统日志",
											"icon": "el-icon-warning",
											"type": "menu"
										},
										"component": "setting/log"
									}
								]
							},
							{
								"path": "/other/about",
								"name": "about",
								"meta": {
									"title": "关于",
									"icon": "el-icon-info-filled",
									"type": "menu"
								},
								"component": "other/about"
							}
						],
						"permissions": [
							"list.add",
							"list.edit",
							"list.delete",
							"user.add",
							"user.edit",
							"user.delete"
						],
						"dashboardGrid": [
							"welcome",
							"ver",
							"time",
							"progress",
							"echarts",
							"about"
						]
					},
					"message": ""
				}
			}
		}
	}
</script>

<style>
</style>
